// 后进先出的特性
const stack = [];
stack.push(1);
stack.push(2);
const item1 = stack.pop();
const item2 = stack.pop();

// 什么场景下用栈？

// 场景一：十进制转二
/**
 * 后出来的余数反而要排到前面
 * 把余数依次入栈，然后再出栈，就可以实现余数倒序输出
 * */

// 场景二：有效的括号
/**
 *  越靠后的左括号，对应的右括号越靠前 
 *  左括号入栈，右括号出栈，最后栈空了就是合法的
 *  ((()))   valid
 *  ()
 **/

// 场景三：函数调用栈
/**
 *  最后调用的函数，最先执行完
 *  后进先出都可以使用栈解决
 *  js解释器使用栈来控制，函数的调用顺序
 **/

// function add() {
//     sayHi();
// }

// function sayHi() {
//     return "Hi!"
// }